package com.tinem.platform.web.auth.login.oauth2;

import com.tinem.platform.module.pojo.enums.rbac.GenderEnum;
import com.tinem.platform.web.auth.page.LoginUserInfo;
import org.springframework.security.oauth2.core.user.OAuth2User;

import java.util.Collection;
import java.util.Date;

/**
 * @author fzh
 * @version v1
 * @program: platform
 * @className Oauth2Server
 * @description TODO
 * @site 
 * @company 
 * @create 2020-09-01 11:00
 */
public interface Oauth2Server {

    Date EXPIRED = new Date(0);

    String getOpenId(OAuth2User oAuth2User);

    String getName(OAuth2User oAuth2User);

    String getNickName(OAuth2User oAuth2User);

    String getEmail(OAuth2User oAuth2User);

    String getCountryMobileCode(OAuth2User oAuth2User);

    String getMobile(OAuth2User oAuth2User);

    String getHeadImage(OAuth2User oAuth2User);

    GenderEnum getSex(OAuth2User oAuth2User);

    Date getExpired(OAuth2User oAuth2User);

    Date getLockedDate(OAuth2User oAuth2User);

    boolean getEnabled(OAuth2User oAuth2User);

    String findUserByOpenId(String openId);

    void saveInfo(LoginUserInfo loginUserInfo);

    Collection<java.math.BigInteger> getDefaultGroupIds();

    Date getExpiredDate(OAuth2User oAuth2User);

    String getPassword(OAuth2User oAuth2User);

    Date getPasswordExpired(OAuth2User oAuth2User);
}
